package com.gy.ai.agent;


import com.gy.ai.agent.core.BaseResponse;
import com.gy.ai.agent.core.ReqOptions;
import com.gy.ai.agent.listener.StreamRespListener;

import java.util.List;

public interface Platform {

    /**
     * 基础对话能力
     *
     * @param prompt 输入
     * @return
     */
    BaseResponse chat(String prompt);

    /**
     * 基础对话能力
     *
     * @param options 参数
     * @return
     */
    BaseResponse chat(ReqOptions options);

    /**
     * 流式请求 chat
     *
     * @param prompt                 输入
     * @param streamResponseListener 监听器
     */
    void chatStream(String prompt, StreamRespListener streamResponseListener);

    /**
     * 流式请求 chat
     *
     * @param options                参数
     * @param streamResponseListener 监听器
     */
    void chatStream(ReqOptions options, StreamRespListener streamResponseListener);

    /**
     * 文本转向量
     *
     * @param input 文本
     * @return
     */
    BaseResponse embedding(String input);

    /**
     * 文本转向量
     *
     * @param options 参数
     * @return
     */
    BaseResponse embedding(ReqOptions options);

    /**
     * 文本向量rerank
     *
     * @param query     查询文本
     * @param documents 重排文档列表
     * @return
     */
    BaseResponse rerank(String query, List<String> documents);

    /**
     * 文本向量rerank
     *
     * @param options 配置参数
     * @return
     */
    BaseResponse rerank(ReqOptions options);

    /**
     * 文生图
     *
     * @param prompt 输入
     * @return
     */
    BaseResponse generateImage(String prompt);

    /**
     * 文生图
     *
     * @param options 配置参数
     * @return
     */
    BaseResponse generateImage(ReqOptions options);
}
